package com.lizhe.jdbc.service;

import com.lizhe.jdbc.dao.ArticleJDBCDAO;
import com.lizhe.jdbc.modle.Article;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

/**
 * 类描述:
 *
 * @author Administrator
 * @create 2021-10-26 21:44
 */

@Service
public class ArticleServiceImpl implements ArticleService {

    @Resource
    private ArticleJDBCDAO articleJDBCDAO;

    // @Trasactional 注解，该注解基本功能为事务管理，保证saveArticle方法一旦有异常，所有的数据库操作就回滚。
    @Override
    @Transactional
    public void saveArticle(Article article) {
        articleJDBCDAO.save(article);
        int a = 2/0;  //人为制造一个异常，用于测试事务

    }

    @Override
    public void deleteArticle(Long id) {
        articleJDBCDAO.deleteById(id);

    }

    @Override
    public void updateArticle(Article article) {
        articleJDBCDAO.updateById(article);
    }

    @Override
    public Article getArticle(Long id) {
        return articleJDBCDAO.findById(id);
    }

    @Override
    public List<Article> getAll() {
        return articleJDBCDAO.findAll();
    }
}